今天要來介紹的是Glide,它用於載入圖片、視頻和GIF動畫。而Glide解決了你必須關心緩存,解碼,管理網路連接,執行緒和異常處理等。
1.程式碼有人維護。
2.程式碼簡潔。
3.功能强大。(包含很多功能,例如:像加載Gif圖片)
dependencies
implementation ("com.github.bumptech.glide:glide:4.11.0") {
exclude group: "com.android.support"
}
implementation 'com.github.bumptech.glide:glide:4.13.2'
Glide 中需要用到網路功能,因此你還得在 AndroidManifest.xml 中宣告一下網路許可權才行:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
輸入圖片網址:
String url="https://memes.tw/download-imagename=64f9c2b295e72175fdebec660914abd6.png";
Glide.with(this).load(url).into(imageView);
因為這是從網路上抓下來所以當按下抓圖片時,會跑一陣子才顯示。
所以我們可以在抓的時候先顯示,正在抓取的圖片。
RequestOptions options = new RequestOptions()
.placeholder(R.drawable.loading);
Glide.with(this)
.load(url)
.apply(options)
.into(imageView);
這裡建立一個 RequestOptions 物件,然後呼叫它的 placeholder() 方法來拿取佔位圖,再將佔點陣圖片的資源 id 傳入到這個方法中。最後,在 Glide 的三步走之間加入一個 apply() 方法,來應用我們剛才建立的 RequestOptions 物件。
RequestOptions options = new RequestOptions()
.placeholder(R.drawable.loading)
.diskCacheStrategy(DiskCacheStrategy.NONE);
這裡串接了一個 diskCacheStrategy() 方法,並傳入 DiskCacheStrategy.NONE 引數,這樣就可以禁用掉 Glide 的快取功能。
RequestOptions options = new RequestOptions()
.placeholder(R.drawable.ic_launcher_background)
.error(R.drawable.error)
.diskCacheStrategy(DiskCacheStrategy.NONE);
這裡又串接了一個 error() 方法就可以指定異常佔位圖了。
這代表如果連線出現問題之類的抓不到圖片,就會放這張佔位圖。
RequestOptions options = new RequestOptions()
.override(200, 100);
這裡是調整圖片大小。
Glide.with(this)
.asBitmap()
.load("http://guolin.tech/test.gif")
.into(imageView);
如果你這張輸入的照片是gif的第一幀,你想要他靜態的時候可以加.asBitmap()。